package cn.jyj.springframework.beans.factory.config;

import cn.jyj.springframework.beans.BeansException;

/**
 * Factory hook that allows for custom modification of new bean instances,e.g. checking for marker interfaces
 *   or wrapping them with proxies.
 * 提供了修改新实例化 Bean 对象的扩展点。
 *
 * @Author 老顽固小可爱
 * @Date 2023/1/8 21:41
 * @Version 1.0
 */
public interface BeanPostProcessor {

    /**
     * 在 Bean 对象执行初始化方法之前，执行此方法
     *
     * @param bean
     * @param beanName
     * @return
     * @throws BeansException
     */
    Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException;

    /**
     * 在 Bean 对象执行初始化方法之后，执行此方法
     *
     * @param bean
     * @param beanName
     * @return
     * @throws BeansException
     */
    Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException;

}

